#include <iostream>

using namespace std;

class CatA{
public:
	double a;
	int b;
	char c;
	static double d;
};
class CatB{
public:
	double a;
	int b;
	char c;
	static double d;
};
class CatC{
public:
	double a;
	int b;
	char c;
	static double d;
	CatC(int b){
		this->b = b;
	}
	int getB(){
		return this->b;
	}
};


int main()
{
	/*
	 * 1.类占用内存大小计算方式和结构体计算大小的方式相同
	 * 2.static修饰的变量，不会被计算到类的大小
	 * 3.栈，堆，全局(静态，常量，字符串)，代码区，类的大小只和普通属性有关系
	 **/
	
	// this指针：代表当前对象，因为类的方法存放在代码区，大家一起共享的，需要使用this做区分

	cout << "A 的大小：" << sizeof(CatA) << endl;
	cout << "B 的大小：" << sizeof(CatB) << endl;
	cout << "C 的大小：" << sizeof(CatC) << endl;

	CatC c1(1);
	CatC c2(3);
	cout << c1.getB() << endl;
	cout << c2.getB() << endl;
	
	return 0;
}
